extends Node2D

@onready var tile_map: TileMap = $TileMap
@onready var camera_2d: Camera2D = $Player/Camera2D

# 在场景初始化的时候进行相机设置
func _ready() -> void:
	# get_used_rect(): 返回 TileMap 中有放置瓦片(tile)的最小矩形区域（Rect2）。
	# .grow(-1): 将这个矩形向内收缩一圈，防止边缘出现空白或超出实际地图内容。
	var used := tile_map.get_used_rect().grow(-1) 	# 地图范围
	# 获取瓦片集(TileSet)中每个瓦片的大小（Vector2），单位是像素。
	var tile_size := tile_map.tile_set.tile_size
	
	camera_2d.limit_top = used.position.y  * tile_size.y
	camera_2d.limit_right = (used.end.x + 1) * tile_size.x # 这里我的右边界少一个tile，手动+1才正常
	camera_2d.limit_bottom = (used.end.y + 1) * tile_size.y # 下边界也少一个tile
	camera_2d.limit_left = used.position.x * tile_size.x
	
	camera_2d.reset_smoothing()
